home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-19 / iritsm3s.zip / SOLID7.IRT < prev    next >
Text File  |  1991-11-29  |  2KB  |  73 lines

  1. #
  2. # Yet another simple 3D mechanical object. This one whas taken from
  3. # PC MAGAZINE volume 8 number 2, January 31, 1989, page 34. This was example
  4. # that was implemented under AutoCAD ver 10, and it looked nice so I tried
  5. # it... It took me about an hour to complete.
  6. #
  7. #                Created by Gershon Elber,    Mar 89
  8. #
  9.  
  10. save_mat = view_mat;
  11. save_res = resolution;
  12.  
  13. resolution = 16;
  14. view_mat = view_mat * trans(vector( 0.4, -0.1, 0.0));
  15.  
  16. #
  17. # Create the big cylinder (no hole yet)
  18. #
  19. C1 = cylin(vector( 0.0, 0.0, 0.0), vector( 0.0, 0.0, 0.7), 0.2);
  20.  
  21. #
  22. # And the small one (including the torus & sphere cut
  23. #
  24. C2 = cylin(vector( 1.0, 0.0, 0.05), vector( 0.0, 0.0, 0.4), 0.15);
  25. resolution = 8;
  26. T1 = circpoly(vector( 0.0, 1.0, 0.0), vector( 0.151, 0.0, 0.25), 0.03);
  27. resolution = 16;
  28. T2 = surfrev(T1) * trans(vector( 1.0, 0.0, 0.0));
  29. free(T1);
  30. B1 = C2 - T2;
  31. free(C2);
  32. free(T2);
  33. resolution = 12;
  34. S1 = sphere(vector( 1.0, 0.0, 0.0), 0.135);
  35. B2 = B1 - S1;
  36. free(B1);
  37. free(S1);
  38. view(list(B2), true);
  39.  
  40. v1 = vector( 0.0, 0.19, 0.35);
  41. v2 = vector( 0.0,-0.19, 0.35);
  42. v3 = vector( 1.0,-0.14, 0.35);
  43. v4 = vector( 1.0, 0.14, 0.35);
  44. CrossSec = poly( list(v1, v2, v3, v4 ));
  45. E1 = extrude(CrossSec, vector( 0.0, 0.0, 0.07));
  46. free(CrossSec);
  47.  
  48. B3 = C1 + E1 + B2;
  49. free(C1);
  50. free(J2);
  51. free(B2);
  52. view(list(B3), true);
  53.  
  54. #
  55. # Time to do the final hole in the big cylinder. Note we couldnt do it before
  56. # as E1 would have penetrate it...
  57. #
  58. resolution = 16;
  59. C3 = cylin(vector( 0.0, 0.0,-0.1), vector( 0.0, 0.0, 0.9), 0.165);
  60. B4 = B3 - C3;
  61. free(B3);
  62. free(C3);
  63.  
  64. final = convex(B4);
  65. free(B4);
  66. interact(list(final), false);
  67.  
  68. save("solid7", list(view_mat,final));
  69. free(final);
  70.  
  71. resolution = save_res;
  72. view_mat = save_mat;
  73.